.btn {
    position: relative;
    display: block;
    
    &> span {
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        z-index: 2;
        background: $red;
        padding: .75em 1em;
        height: 3em;
        font-family: $headingFont;
        font-weight: 500;
        color: $white;
        border: 1.5px solid $red;
        text-align: center;
        transition: transform .3s ease;
        
        span {
            margin: 0 0 0 .5em;
        }
        
        img {
            display: block;
        }
    }
    
    &.secondary {
        &> span {
            color: $red;
            background: $white;
        }
    }
    
    &.disabled {
        pointer-events: none;
        
        &> span {
            background: $gray;
            border-color: $gray;
        }
        
        &.secondary > span {
            background: $white;
            color: $gray;
        }
    }
    
    &::before {
        content: "";
        position: absolute;
        z-index: 1;
        top: 0; left: 0;
        width: 100%; height: 100%;
        background: $white;
        border: 1.5px solid $red;
        transition: transform .3s ease;
    }
    
    &:hover {
        &> span {
            transform: translate(-4px, -4px);
        }
    }
    
    @include fl-break(40em) {
        &> span {
            padding: .75em 2.25em;
        }
    }
}

.input_group {
    padding-top: 1.5em;
    
    label {
        margin-top: -1.55rem;
    }
    
    input[type="text"], input[type="search"], input[type="email"], input[type="tel"] {
        border: none;
        border-bottom: 1px solid $gray;
        box-sizing: border-box;
        box-shadow: none;
        background: none;
        padding: .3125em 0;
        margin-bottom: .5em;
        width: 100%;
        letter-spacing: .5px;
        appearance: none;
        outline: none;
        transition: border-color .3s ease;
        
        &:focus {
            border-color: $black;
        }
    }
    
    &.search {
        position: relative;
        
        input[type="submit"] {
            position: absolute;
            top: 1.8em; left: 0;
            width: 1.0625em; height: 1.0625em;
            text-indent: -999em;
            background: url("/img/icons/search.min.svg") no-repeat center;
            background-size: contain;
            border: none;
            appearance: none;
        }
    }
    
    &.icon {
        position: relative;
        
        input[type="text"], input[type="search"], input[type="email"], input[type="tel"] {
            padding-left: 2em;
        }
        
        .icon_display {
            transition: transform .3s ease;
            
            &:hover {
                transform: scale(1.08);
            }
        }
    }
}